Posso dire una cosa? Sono il tipo di persona che se mi fate una domanda e non so qual è la risposta, vi dico chiaro e tondo che non la so, ma potete scomettere che so come trovarla una risposta e la troverò, la troverò la risposta - Will Smith, Alla Ricerca della Felicità
La felicità rappresenta il fine ultimo di ogni azione, di ogni scelta e di ogni pensiero dell’uomo. Siamo tutti costantemente alla ricerca della felicità. Essa può essere cercata nella carriera, nella casa, nella famiglia, nella religione, nelle passioni, ecc. Ma da dove deriva la felicità? Possiamo trovare il pozzo della felicità?
Ormai da alcuni anni si svolge un’analisi sulla felicità in molti paesi e si stipula ogni anno un report sulla felicità denominato “World Happiness Report”" il quale sta avendo sempre più successo in ambiti decisionali nazionali e soprattutto in ambito politico, sociale, economico, ecc.
Personalemtne ero partito con una domanda ben specifica: la religione incide sulla felicità della persona? Se la felicità non è data da qualcosa di immateriale e astratto come Dio, da cosa ci deriva la felicità?
L’analisi cercherà quindi di rispondere alle seguenti domande:
Come si è evoluta la religione nel mondo e negli anni?
La religione incide sulla felicità? Quale religione rende più felici? Essere religiosi rende le persone più felici?
Cos’altro potrebbe incidere sulla fleicità?
Felicità e morte per suicidio: sono variabili dipendenti? E il suicidio con la religione?
In tale analisi sono stati utilizzati 7 dataset. È utile analizzare i contenuti di tali dataset prima di iniziare l’analisi.
Tale dataset sarà utilizzato per analizzare la religiosità di alcune nazioni. Esso ha tali variabili:
year : anno di rilevazione dei dati. L’analisi è quinquinnale, quindi i dati sono strutturati in modo tale da avere le osservaizoni definite ogni cinque anni, dal 1945 al 2010.
state : Nome dello stato.
code : Codice identificativo per nazione.
christianity_protestant, christianity_romancatholic, christianity_easternorthodox, christianity_anglican, christianity_other, christianity_all, judaism_orthodox, judaism_conservative, judaism_reform, judaism_other, judaism_all, islam_sunni, islam_shi’a, islam_ibadhi, islam_nationofislam, islam_alawite, islam_ahmadiyya, islam_other, islam_all, buddhism_mahayana, buddhism_theravada, buddhism_other, buddhism_all, zoroastrianism_all, hinduism_all, sikhism_all, shinto_all, baha’i_all, taoism_all, jainism_all, confucianism_all, syncretism_all, animism_all, otherreligion_all : queste variabili rappresentano il numero di credenti per tali credenze. Nelle analisi spesso ci soffermeremo solo sulle relgioni del tipo “nomereligione_all”, in modo tale da soffermarci sulle famiglie di religione.
religion_all: numero complessivo di credenti in ogni paese. Essa ha molti valori errati. Per questo motivo spesso sommeremo i valori assunti dalle variabili precedenti. Quindi eviteremo di usare tale variabile e non la eliminaremo per non togliere informazione.
noreligion_all: numero di non credenti per paese.
population: popolazione di ogni stato.
protestant_percent, romancatholic_percent, easternorthodox_percent, anglican_percent, otherchristianity_percent, christianity_percent, orthodox_percent, conservative_percent, reform_percent, otherjudaism_percent, judaism_percent, sunni_percent, shi’a_percent, ibadhi_percent, nationofislam_percent, alawite_percent, ahmadiyya_percent, otherislam_percent, islam_percent, mahayana_percent, theravada_percent, otherbuddhism_percent, buddhism_percent, zoroastrianism_percent, hinduism_percent, sikhism_percent, shinto_percent, baha’i_percent, taoism_percent, jainism_percent, confucianism_percent, syncretism_percent, animism_percent, noreligion_percent, otherreligion_percent, religion_sumpercent, total_percent: queste variabili sono le frequenze relative delle diverse religioni (includendo anche il numero totale di religiosi e di non religiosi). Tali variabili verranno eliminate e successivamente ricalcolate.
Le ultime due variabili non sono spiegate in quanto sono state create dal ricercatore che ha definito tale dataset per scopi interni, infatti nel sito non descrive la funzionalità di tali varibaili. Tale dataset è stato preso dal sito Kaggle, in particolare dalla pagina link la quale a suo volta riprende il dataset dal “World Religion Project”. Il World Religion Project ha lo scopo di fornire informazioni dettagliate sull’adesione religiosa in tutto il mondo dal 1945. Contiene dati sul numero di aderenti per religione in ciascuno degli stati del sistema internazionale per ogni periodo di mezzo decennio.
Il set di dati è stato creato da Zeev Maoz, University of California-Davis, e Errol Henderson, Pennsylvania State University, e pubblicato dal Correlates of War Project.
Bisogna ammettere che il dataset include alcune discrepanze in quanto spesso la somma dei praticanti divisi per religiosità risulta non combaciare con il totale della popolazione. Questo avviene però solamente in alcuni casi che verranno mostrati successivamente.
L’Excel “WHR2018Chapter2OnlineData.xls” è stato preso dal sito World Happiness Report, in particolae dal capitolo 2. Mentre le informazioni delle variabili sono state prese dall’appendice Appendix1ofChapter2.pdf. Analizziamo ora le variabili che costituiscono tale dataset:
country : paese analizzato.
year: anno analizzato.
Life Ladder: Punteggio di felicità o benessere soggettivo. La misura dell’indagine è del 22 dicembre 2017 del Gallup World Poll (GWP), che copre gli anni dal 2005 al 2017. Salvo diversa indicazione, è la risposta media nazionale alla questione delle valutazioni della vita. La traduzione della formulazione inglese della domanda è “Immagina una scala, con gradini numerati da 0 in basso a 10 in alto. La parte superiore della scala rappresenta la migliore vita possibile per te e la parte inferiore della scala rappresenta la vita peggiore per te. Su quale passo della scala diresti di sentirti personalmente a tuo agio in questo momento?” Questa misura è anche indicata come scala di vita di Cantril o semplicemente scala di vita nella nostra analisi.
Log GDP per capita: rappresenta il logaritmo del PIL pro capite. A pochi paesi mancano i numeri del PIL, ma erano presenti nelle versioni precedenti. Si utilizzano i numeri della versione precedente, dopo aver regolato i loro livelli di un fattore di 1,17 per tenere conto delle variazioni dei prezzi impliciti, cioè tenendo conto della variazione del potere d’acquisto (PPP).
Social support : è la media nazionale delle risposte binarie (0 o 1) alla domanda GWP “Se eri nei guai, hai parenti o amici su cui puoi contare per aiutarti quando ne hai bisogno, o no?”.
Healthy life expectancy at birth : Le serie temporali dell’aspettativa di vita sana alla nascita sono calcolate dagli autori di tale report sulla base dei dati dell’Organizzazione mondiale della sanità (OMS), degli Indicatori di sviluppo mondiale (WDI) e delle statistiche pubblicate su articoli di riviste.
Freedom to make life choices: è la media nazionale delle risposte alla domanda GWP “Sei soddisfatto o insoddisfatto della tua libertà di scegliere ciò che fai della tua vita?”.
Generosity : La generosità è il residuo della regressione sulla media nazionale della risposta alla domanda GWP “Hai donato soldi ad un ente di beneficenza nel mese scorso?” sul PIL pro capite.
Perceptions of corruption : La misura è la media nazionale dell’indagine che risponde a due domande nel GWP: “La corruzione è diffusa in tutto il governo o no?” e “La corruzione è diffusa all’interno delle imprese o no?” La percezione complessiva è solo la media delle due possibili risposte 0 e 1. Nel caso in cui manchi la percezione della corruzione governativa, usiamo la percezione della corruzione aziendale come la percezione generale.
Positive affect : è definita come la media di tre misure di Positive affect nel GWP: felicità, risata e divertimento sulla linea del sondaggio Gallup World Poll. Queste misure sono le risposte alle seguenti tre domande, rispettivamente: “Hai provato i seguenti sentimenti durante il giorno (A LOT OF DAY)? Hai provato felicità?”," Hai sorriso o riso molto ieri? " e " Hai vissuto i seguenti sentimenti durante il giorno (A LOT OF DAY) di ieri? Hai provato divertimento?“.
Negative affect : l’incidenza negativa è definita come la media di tre misure GWP. Le domande utilizzate per tale indicatore “Hai provato i seguenti sentimenti durante la giornata di ieri (A LOT OF DAY)? Hai provato preoccupazione?”, “Hai provato i seguenti sentimenti durantela giornata di ieri (A LOT OF DAY)? Hai provato tristezza?” e “Hai provato i seguenti sentimenti durante la giornata di ieri (A LOT OF DAY)? Hai provato rabbia?”.
Confidence in national government: anche in questo caso abbiamo una media delle risposte possibili (sempre 0 o 1) alla domanda: “Hai fiducia nel governo nazionale?”.
Democratic Quality : tale misura è basate sul progetto Worldwide Governance Indicators (WGI) (Kaufmann, Kraay e Mastruzzi) aggiornato nel 29 settembre 2017. Questo progetto definisce 6 indicatori, due dei quali sono utilizzati per analizzare la qualità della democrazia.
Delivery Quality : questo indicatore viene calcolato tramite le 4 variabili rimanenti del progetto Worldwide Governance Indicators (WGI). Questo indicatore stima la qualità dell’erogazione dei servizi per nazione.
Standard deviation of ladder by country-year, Standard deviation/Mean of ladder by country-year, GINI index (World Bank estimate), GINI index (World Bank estimate), average 2000-15, gini of household income reported in Gallup, by wp5-year: per la definizione di tali varibaili si consiglia di andare al sito sopracitato, in modo tale da non perdere significato nella traduzione. Questa variabili in più non verranno utilizzate nell’analisi.
Di tale file Excel verrà utilizzato anche il secondo foglio di lavoro che contiene alcune delle variabili principali del dataset appena presentato i cui valori però sono definiti in termini di quota parte della variabile Life Ladder spiegata da tali variabili.
Nelle analisi verranno utilizzati due dataset per le coordinate dei paesi. Questi dataset sono stati creati appositamente per tali analisi in quanto i due dataset ne erano sprovvisti. Per la loro creazione si è utilizzato il comando “mutate_geocode”, del package “ggmap”, e il dataset preso da tale sito. Quindi sono stati creati due dataset:
coordinate_Religion: per i paesi del dataset delle religioni.
coordinate_WHR: per i paesi del dataset riguardante la felicità.
Questo dataset e stato preso da questo sito e sarà utilizzato alla fine della relazione, svolgerà un ruolo cruciale nell’analisi sovvertendo tutti i ragionamenti. Esso sarà costuito da tre variabili principali: una riguardante l’anno di riferimo, una rigurardante il paese e l’ultima il tasso di suicidi su 100000 persone.
Si riportano qua sotto tutti i pacchetti che utilizzeremo nel corso dell’analisi.
library(tidyverse)
library(plotly)
library(corrplot)
library(readr)
library(DT)
library(gapminder)
library(readxl)
library(ggthemes)
library(corrplot)
library(knitr)
library(countrycode)
library(easyGgplot2)
library(modelr)
library(purrr)
Tale analisi raccoglie una ampia molteplicità di dataset presi da svariati siti. Questo ci porterà a due principali problematiche
Non tutti i paesi sono trasversalmente analizzati tra i dataset
Non tutti i dataset utilizzano la medesima nomenclatura
Per superare la seconda porblematica si è usato il pacchetto “countrycode” omogeneizzando i nomi con la nomenclatura ISO3.
Iniziamo quindi ora l’analisi rispondendo alle domande.
Per rispondere e tale domanda utilizzeremo il dataset riguardante le religioni nel mondo:
## Caricamento del dataset religion
religion <- read_csv("database/Religio_national.csv")
coordinate_Religion <- read_csv("database/coordinate_Religion.csv")
head(names(religion), n = 7)
## [1] "year" "state"
## [3] "code" "christianity_protestant"
## [5] "christianity_romancatholic" "christianity_easternorthodox"
## [7] "christianity_anglican"
tail(names(religion), n = 7)
## [1] "animism_percent" "noreligion_percent" "otherreligion_percent"
## [4] "religion_sumpercent" "total_percent" "dual_religion"
## [7] "source_code"
Essendo l’elenco dei nomi delle variabili molto lungo si ha preferito mostrare una parte rappresentante di queste. Come notiamo questa tabella non è in formato tidy: abbiamo colonne che non sono variabili, ma valori/determinazioni di un’altra variabile. Una volta applicato il comando “gather” per risolvere il problema precedente, separiamo la colonna religion in due colonne che chiamaremo “religion” e “spec”. Questo perchè ci verrà comodo separe la famiglia della religione (cristiani, islamici, ebrei, ecc.) dalla sua specificità (protestanti, greco ortodossi, ecc.). Infine togliamo alcune variabili che sono superflue e ricalcoliamo le frequenze relative per ogni religione, paese e anno.
## Pulizia e creazione dataset religion_tidy
religion_tidy <- religion %>%
select(-ends_with("percent"), -code, -dual_religion, -source_code)%>%
gather( 3:38, key = 'religion',value = 'frequency')%>%
separate(col = religion, into = c('religion','spec'),sep = "_", remove = T)%>%
mutate(freqrel = frequency / population)
## Verifica vincolo di chiave primaria
religion_tidy%>%
count(year, state, religion, spec)%>%
filter(n>1)
## # A tibble: 0 x 5
## # ... with 5 variables: year <int>, state <chr>, religion <chr>,
## # spec <chr>, n <int>
Sistemato quindi il nostro dataset conviene dargli una prima occhiata, andando a vedere se ci sono valori anomali:
summary(religion_tidy)
## year state population religion
## Min. :1945 Length:71820 Min. :9.937e+03 Length:71820
## 1st Qu.:1970 Class :character 1st Qu.:2.027e+06 Class :character
## Median :1985 Mode :character Median :6.750e+06 Mode :character
## Mean :1983 Mean :2.983e+07
## 3rd Qu.:2000 3rd Qu.:1.911e+07
## Max. :2010 Max. :1.345e+09
##
## spec frequency freqrel
## Length:71820 Min. :0.000e+00 Min. :0.000000
## Class :character 1st Qu.:0.000e+00 1st Qu.:0.000000
## Mode :character Median :0.000e+00 Median :0.000000
## Mean :2.158e+06 Mean :0.078799
## 3rd Qu.:1.451e+04 3rd Qu.:0.002529
## Max. :1.342e+09 Max. :1.727701
## NA's :5 NA's :5
Quello che notiamo è che la variabile “freqrel” ha alcuni valori maggiori di 1. Ciò non è possibile, quindi, essendo “freqrel” una variabile costruita a posteriori, per non perdere informazioni si porranno tali valori “NA”.
## Assegnazione valore NA a frequenze relative maggiori di 1
religion_tidy$freqrel[religion_tidy$freqrel>1]<-NA
Ora bisogna controllare che la somma delle frequenze relative anno per anno sia pari a uno:
## Tabella paesi con somma frequenze relative maggiori di 1
religion_tidy%>%
group_by(year, state)%>%
filter(spec=="all", religion !="religion")%>%
summarise(somma=sum(freqrel))%>%
filter(somma>1)%>%
ungroup()%>%
distinct(state)%>%
kable()
| state |
|---|
| Cuba |
| Haiti |
| Japan |
| Myanmar |
| Canada |
Notiamo che questo non avviene. Per fortuna avviene in pochi paesi e il più di questi risultano essere piccoli paesi dove la determinazione del numero dei fedeli risulta essere logicamente più difficile da calcolare. Per questo motivo spesso filtreremo i dati per frequenza relativa maggiore di 0.3 in modo tale da considerare solo le religioni più praticate o 0.5 per determinare la religione più praticata.
Pulito e preparato il dataset possiamo andare a rispondere alla domanda di tale capitolo. Iniziamo analizzando la frequenze dei religiosi contro gli anni:
## Trend numero di religiosi per stato
a<-religion_tidy%>%
filter(spec=="all", religion !="noreligion", religion != "religion", freqrel>0.3)%>%
group_by(year, state)%>%
summarise(sum = sum(frequency))%>%
ggplot(mapping = aes(x = year, y = sum))+
geom_line(aes(col = state))+
labs(title = "Andamento numero di religiosi", y = "Numero di religiosi per stato", x = "Anno", colour = "Stato")+
theme_minimal()+
theme(axis.text.y = element_blank())+
scale_x_discrete(limits = religion_tidy$year)
ggplotly(a, width = 900, height = 600)
Si nota un comune andamento costante, a parte per la Cina e per l’India. Questo grafico risulta essere poco rappresentativo se non confrontato con l’incremento della popolazione come vedremo nel prossimo grafico:
## Trend popolazioni per stato
b<-religion_tidy%>%
filter(religion == "religion")%>%
ggplot(mapping = aes(x = year, y = population))+
geom_line(aes(col = state))+
labs(title = "Andamento della popolazione per stato", y = "Popolazione", x = "Anno", colour = "Stato")+
theme_minimal()+
theme(axis.text.y = element_blank())+
scale_x_discrete(limits = religion_tidy$year)
ggplotly(b, width = 900, height = 600)
Tale grafico ci dimostra come un naturale aumento dei fedeli, sia dato dall’aumento della popolazione.
Un fattore che può confermare l’idea per la quale la Cina e l’India si discostino dal comune andamento è l’analisi dei residui. Ipotizando ora che l’andamento del numero dei religiosi contro l’anno sia rappresentato da un retta di regressione possiamo graficare i residui in modo tale da verificare quale paese si discosta dal comune andamento.
## Grafico residui per paese
country_model = function(df){
lm(frequency~year, data = df)
}
by_country <- religion_tidy%>%
filter(spec=="all", religion !="noreligion", religion != "religion", freqrel>0.3)%>%
group_by(state)%>%
nest()%>%
mutate(model = map(data, country_model))%>%
mutate(resids = map2(data, model, add_residuals))
models<-map(by_country$data, country_model)
resids<-unnest(by_country, resids)
a<-resids%>%
ggplot(aes(year, resid))+
geom_line(aes(col=state), alpha = 0.3, show.legend = FALSE)+
geom_smooth(se = F)+
labs(title = "Distribuzione dei residui per stato", x = "Anno", y ="Residui")+
theme_minimal()+
scale_x_discrete(limits = religion_tidy$year)
ggplotly(a, width = 900, height = 600)
Quest’ultimo grafico ci conferma la precednete tesi per la quale la Cina e l’India sono due osservazioni anomale. D’altra parte anche il Pakistan da tale grafico risulta essere un outlier, questo perchè la popolazione è diminuita di molto tra gli anni 1970 e 1980 probabilmente a causa delle vicende inerenti la conquista dell’indipendenza.
Ciò nonostante è interessante focalizzarci sul trend delle popolazione e dei fedeli in India e in Cina, poiché questi due paesi mostrano due caratteri molto differenti:
## Confronto trend popolazioni e numero di religiosi in Cina e in India
c<-religion_tidy%>%
filter(spec=="all", religion !="noreligion", religion != "religion", freqrel>0.3, state == c ("China", "India"))%>%
group_by(year, state)%>%
summarise(sum = sum(frequency))%>%
ggplot(mapping = aes(x = year, y = sum))+
geom_line(aes(col = state, linetype = "religione"), show.legend = F)+
geom_line(data = filter(religion_tidy, state ==c("China", "India")), mapping = aes(x = year, y = population, col = state, linetype = "popolazione" ), show.legend = T)+
labs(title="Andamento popolazione vs numero di religiosi in Cina e in India", x = "Anno", y = "Popolazione e Religiosi", colour = "", linetype = "")+
theme_minimal()+
theme(axis.text.y = element_blank())+
scale_x_discrete(limits = religion_tidy$year)
ggplotly(c, width = 900, height = 600)
La differenza sostanziale è che in Cina c’è un forte aumento dell’ateismo e differenza dell’India, la quale mostra un tred praticmanente identico tra popolazione e numero di religiosi.
Andiamo ora ad analizzare il trend del numero dei “non religiosi”:
## Trend numero non religiosi per stato
d<-religion_tidy%>%
filter(religion == "noreligion")%>%
ggplot(mapping = aes(x = year, y = frequency))+
geom_line(aes(col = state))+
labs(title="Andamento non religiosi per stato", x = "Anno", y = "Non religiosi", colour = "Stato")+
theme_minimal()+
theme(axis.text.y = element_blank())+
scale_x_discrete(limits = religion_tidy$year)
ggplotly(d, width = 900, height = 600)
Come si può notare, il numero di non religiosi in Cina come previsto è di molto aumentato. Un altro trend interessante è quello della Russia, questo è dato da una forte diminuzione delle popolazione tra gli anni 1990 e 2000. Se si è interessati alla motivazione di tale evento si consiglia la pagina di wikipedia
Risulta ora interessante andare ad analizzare l’andamento del rapporto tra credenti e non credenti negli stati che graficamente hanno dimostrato un andamento “particolare”:
## Numero di non religiosi e di fedeli in Cina
e<-religion_tidy%>%
filter((freqrel > 0.2 | religion == "noreligion") & religion != "religion", state == "China", spec == "all")%>%
ggplot(mapping=aes(x = religion, y = freqrel, fill = religion))+
geom_col()+
facet_wrap(~year)+
labs(title="Numero di non religiosi vs numero fedeli in Cina", x = "", y = "Frequenza", fill = "Religione")+
theme_minimal()+
theme(axis.text.x = element_blank(),
axis.ticks = element_blank())
ggplotly(e, width = 800, height = 600)
## Numero di non religiosi e di fedeli in India
f<-religion_tidy%>%
filter((freqrel > 0.2 | religion == "noreligion") & religion != "religion", state == "India", spec =="all")%>%
ggplot(mapping=aes(x = religion, y = freqrel, fill = religion))+
geom_col()+
facet_wrap(~year)+
labs(title="Numero di non religiosi vs numero fedeli in India", x = "", y = "Frequenza", fill = "Religione")+
theme_minimal()+
theme(axis.text.x = element_blank(),
axis.ticks = element_blank())
ggplotly(f, width = 800, height = 600)
## Numero di non religiosi e di fedeli in Russia
g<-religion_tidy%>%
filter((freqrel > 0.2 | religion == "noreligion") & religion != "religion", spec == "all", state == "Russia")%>%
ggplot(mapping=aes(x = religion, y = freqrel, fill = religion))+
geom_col()+
facet_wrap(~year)+
labs(title="Numero di non religiosi vs numero fedeli in Russia", x = "", y = "Frequenza", fill = "Religione")+
theme_minimal()+
theme(axis.text.x = element_blank(),
axis.ticks = element_blank())
ggplotly(g, width = 800, height = 600)
Ora, per avere una visuale complessiva del globo si grafica il movimento dei fedeli delle diverse religioni negli anni. Vediamo quindi come le religioni si sono evolute nel mondo. Per ogni stato prenderemo solo quelle religioni che hanno un freqrel>0.5 in modo tale da prendere solo la religione o la “non religione” più praticata. Il secondo grafico è stato messo in quanto risulta essere più interessante a colpo d’occhio per capire tale fenomeno.
Ci serve però anche caricare il dataset contenente le coordinate degli stati inclusi in religion_tidy e verifichiamo che tutti i paesi abbiano le corrispondenti coordinate:
## Caricamento dataset delle coordinate per religion_tidy
coordinate_Religion <- read_csv("database/coordinate_Religion.csv")
religion_tidy%>%
anti_join(coordinate_Religion, by = "state")
## # A tibble: 0 x 7
## # ... with 7 variables: year <int>, state <chr>, population <int>,
## # religion <chr>, spec <chr>, frequency <int>, freqrel <dbl>
## Mappa delle religioni
h<-religion_tidy%>%
filter(freqrel>0.5, religion != "religion", spec == "all")%>%
left_join(coordinate_Religion, by = "state")%>%
ggplot(aes(long, lat, col = religion, size = freqrel, frame = year, label=state)) +
borders("world") +
geom_point(na.rm = T, alpha =.98) +
coord_quickmap()+
theme_minimal()+
labs(title="Mappa delle religioni", x = "", y = "", colour = "Religione", size ="")
ggplotly(h, width = 900, height = 600)%>%animation_opts(transition = 0, redraw = F)
## Si elimina la cartina sottostante per comprendere meglio il trend
i<-religion_tidy%>%
filter(freqrel>0.5, religion != "religion", spec == "all")%>%
left_join(coordinate_Religion, by = "state")%>%
ggplot(aes(long, lat, col = religion, size = freqrel, frame = year, label=state)) +
geom_point(na.rm = T, alpha =.7) +
coord_quickmap()+
theme_minimal()+
labs(title="Mappa delle religioni", x = "", y = "", colour = "Religione", size ="")
ggplotly(i, width = 800, height = 600)%>%animation_opts(easing = "elastic", frame =1000, mode = "next", redraw = F)%>%animation_slider()
Quello che notiamo nei grafici precedenti è una forte ascesa di tre principali religioni: cristianesimo, islamismo, buddhismo. In realtà andando ad analizzare le frequenze relative si nota un quasi costante andamento di tutte le religioni (eccetto per il sincretismo, l’anismo e l’ateismo). Infatti nel prossimo grafico si vede come le proporzioni di credenti nelle varie religioni è praticamente uguale negli anni:
## Trend frequenze relative per religioni
l<-religion_tidy%>%
filter(religion!="taoism",freqrel>0.3, religion != "religion", spec =="all", !is.na(frequency))%>%
group_by(year, religion)%>%
summarise(somma = sum(frequency)/sum(as.numeric(population)))%>%
ggplot(mapping=aes(x=year, y = somma, fill = religion))+
geom_col()+
facet_wrap(~religion)+
theme(axis.ticks.y = element_blank())+
theme_minimal()+
labs(title="Andamento frequenze relative religioni", x ="Anno", y = "frequenza", colour = "Religion")
ggplotly(l, width = 800, height = 500) %>% hide_legend()
Visto tale trend, possiamo ora ipotizzare che nelle prossime analisi la religione più praticata nei diversi stati sia quella più praticata nell’ultimo anno disponibile in questa dataset, come visto nel dataset religion_tidy.
Carichiamo il dataset riguardante i dati sulla felicità e il dataset delle sue coordinate:
## Caricamento dataset happiness
happiness <- read_excel("database/WHR2018Chapter2OnlineData.xls")
coordinate_WHR <- read_csv("database/coordinate_WHR.csv")
Verifichiamo il vincolo di chiave primaria e aggiungiamo la variabile rank per tenere conto della posizione nella classifica annuale:
## Creazione variabile rank
happiness<-happiness%>%
group_by(year)%>%
mutate(rank=rank(-`Life Ladder`))%>%
select(rank, everything())
## Verifica vincolo chiave primaria
happiness%>%
count(year, country)%>%
filter(n>1)
## # A tibble: 0 x 3
## # Groups: year [0]
## # ... with 3 variables: year <dbl>, country <chr>, n <int>
Omogeneizziamo i nomi dei paesi.
## Impostazione dei codici nomi paesi
happiness<-happiness%>%
mutate(code=countrycode(country,origin = "country.name", dest ="iso3c"))
religion_tidy<-religion_tidy%>%
mutate(code = countrycode(state, origin = "country.name", dest = "iso3c"))
Vediamo ora tre grafici. Uno rapresenta il valore medio della felicità raggruppato per religione al variare dell’anno. Il secondo mostra i boxplot della variabile “Life Ladder” di ogni religione. Il terzo grafico evidenza la differenza tra la media della felicità tra i credenti e i non credenti.
## Grafico andamento della felicità media per religione
a<-religion_tidy%>%
filter(freqrel>0.5, religion !="religion", spec =="all", year ==2010)%>%
select(code, religion)%>%
right_join(happiness, by = 'code')%>%
filter(!is.na(religion))%>%
group_by(religion, year)%>%
summarise(avg=mean(`Life Ladder`, na.rm = T))%>%
ggplot(mapping = aes(x=year, y = avg, col = religion))+
geom_point(position = "jitter", show.legend = F)+
geom_smooth(se = F)+
theme_minimal()+
labs(title = "Andamento felicità media per religione", x = "Anno", y = "Felicità media", colour = "Religione")
ggplotly(a, width = 800, height = 500)
## Grafico boxplot felicità per religione
b<-religion_tidy%>%
filter(freqrel>0.5, religion !="religion", spec =="all", year ==2010)%>%
select(code, religion)%>%
right_join(happiness, by = 'code')%>%
filter(!is.na(religion))%>%
ggplot(mapping = aes(x = religion, y = `Life Ladder`, col = religion))+
geom_point(position = "jitter", alpha = 0.1, col="grey")+
geom_boxplot(show.legend = F)+
theme_minimal()+
labs(title="Boxplot per religione", x = "", y = "Felicità", colour = "Religione")+
theme(axis.text.x = element_blank())
ggplotly(b, tooltip = NULL, width = 800, height = 500)
## Grafico anamento felicità media per religiosi e non religiosi
nr<-religion_tidy%>%
filter(freqrel>0.5, religion !="religion", spec =="all", year ==2010)%>%
select(code, religion)%>%
right_join(happiness, by = "code")%>%
group_by(religion, year)%>%
filter(religion=="noreligion")%>%
summarise(avg = mean(`Life Ladder`))
r<-religion_tidy%>%
filter(freqrel>0.5, religion !="religion", spec =="all", year ==2010)%>%
select(religion, code)%>%
inner_join(happiness, by = "code")%>%
filter(religion!= c("noreligion"))%>%
group_by(year)%>%
summarise(avg = mean(`Life Ladder`))%>%
mutate(religion = "religoius")
c<-ggplot()+
geom_point(data = nr, mapping = aes(x = year, y = avg, col = "Non religiosi"), na.rm = T)+
geom_smooth()+
geom_point(data = r, mapping = aes(x = year, y = avg, col = "Religiosi"), na.rm = T)+
geom_smooth()+
theme_minimal()+
labs(title = "Andamento felicità media religiosi vs non religiosi", x = "Anno", y = "Felicità media", colour = "")+theme_minimal()+
scale_x_discrete(limits = happiness$year)
ggplotly(c, width = 800, height = 500)
Questi dati ci consentono di dire che osservando la felicità delle diverse religioni negli anni essa non è variata in maniera eccessiva (a parte per i paesi buddhisti), mentre c’è una qualche differenza tra le diverse religioni. In più il terzo grafico ci indica il fatto che i paesi non religiosi sembrano essere più felici.
Diamo una prima occhiata al dataset per vedere se ci sono dei valori anomali.
str(happiness)
## Classes 'grouped_df', 'tbl_df', 'tbl' and 'data.frame': 1562 obs. of 21 variables:
## $ rank : num 105 96 84 140 136 131 143 126 120 141 ...
## $ country : chr "Afghanistan" "Afghanistan" "Afghanistan" "Afghanistan" ...
## $ year : num 2008 2009 2010 2011 2012 ...
## $ Life Ladder : num 3.72 4.4 4.76 3.83 3.78 ...
## $ Log GDP per capita : num 7.17 7.33 7.39 7.42 7.52 ...
## $ Social support : num 0.451 0.552 0.539 0.521 0.521 ...
## $ Healthy life expectancy at birth : num 49.2 49.6 50 50.4 50.7 ...
## $ Freedom to make life choices : num 0.718 0.679 0.6 0.496 0.531 ...
## $ Generosity : num 0.182 0.204 0.138 0.175 0.247 ...
## $ Perceptions of corruption : num 0.882 0.85 0.707 0.731 0.776 ...
## $ Positive affect : num 0.518 0.584 0.618 0.611 0.71 ...
## $ Negative affect : num 0.258 0.237 0.275 0.267 0.268 ...
## $ Confidence in national government : num 0.612 0.612 0.299 0.307 0.435 ...
## $ Democratic Quality : num -1.93 -2.04 -1.99 -1.92 -1.84 ...
## $ Delivery Quality : num -1.66 -1.64 -1.62 -1.62 -1.4 ...
## $ Standard deviation of ladder by country-year : num 1.77 1.72 1.88 1.79 1.8 ...
## $ Standard deviation/Mean of ladder by country-year : num 0.477 0.391 0.395 0.466 0.475 ...
## $ GINI index (World Bank estimate) : num NA NA NA NA NA NA NA NA NA NA ...
## $ GINI index (World Bank estimate), average 2000-15 : num NA NA NA NA NA NA NA NA NA NA ...
## $ gini of household income reported in Gallup, by wp5-year: num NA 0.442 0.327 0.337 0.345 ...
## $ code : chr "AFG" "AFG" "AFG" "AFG" ...
## - attr(*, "vars")= chr "year"
## - attr(*, "labels")='data.frame': 13 obs. of 1 variable:
## ..$ year: num 2005 2006 2007 2008 2009 ...
## ..- attr(*, "vars")= chr "year"
## ..- attr(*, "drop")= logi TRUE
## - attr(*, "indices")=List of 13
## ..$ : int 54 120 177 237 354 364 404 455 486 510 ...
## ..$ : int 30 42 65 75 96 108 133 145 167 198 ...
## ..$ : int 10 31 43 55 76 97 109 121 131 146 ...
## ..$ : int 0 32 44 56 66 77 98 110 122 134 ...
## ..$ : int 1 11 33 45 78 87 99 111 148 158 ...
## ..$ : int 2 12 20 34 46 57 67 79 88 100 ...
## ..$ : int 3 13 21 26 35 47 58 68 80 89 ...
## ..$ : int 4 14 22 27 36 48 59 69 81 90 ...
## ..$ : int 5 15 28 37 49 60 70 82 91 103 ...
## ..$ : int 6 16 23 29 38 50 61 71 83 92 ...
## ..$ : int 7 17 39 51 62 72 84 93 105 117 ...
## ..$ : int 8 18 24 40 52 63 73 85 94 106 ...
## ..$ : int 9 19 25 41 53 64 74 86 95 107 ...
## - attr(*, "drop")= logi TRUE
## - attr(*, "group_sizes")= int 27 89 102 110 114 124 146 142 137 145 ...
## - attr(*, "biggest_group_size")= int 146
summary(happiness)
## rank country year Life Ladder
## Min. : 1.00 Length:1562 Min. :2005 Min. :2.662
## 1st Qu.: 31.00 Class :character 1st Qu.:2009 1st Qu.:4.606
## Median : 63.00 Mode :character Median :2012 Median :5.333
## Mean : 64.93 Mean :2012 Mean :5.434
## 3rd Qu.: 96.00 3rd Qu.:2015 3rd Qu.:6.271
## Max. :146.00 Max. :2017 Max. :8.019
##
## Log GDP per capita Social support Healthy life expectancy at birth
## Min. : 6.377 Min. :0.2902 Min. :37.77
## 1st Qu.: 8.311 1st Qu.:0.7483 1st Qu.:57.30
## Median : 9.399 Median :0.8330 Median :63.80
## Mean : 9.221 Mean :0.8107 Mean :62.25
## 3rd Qu.:10.191 3rd Qu.:0.9043 3rd Qu.:68.10
## Max. :11.770 Max. :0.9873 Max. :76.54
## NA's :27 NA's :13 NA's :9
## Freedom to make life choices Generosity Perceptions of corruption
## Min. :0.2575 Min. :-0.32295 Min. :0.0352
## 1st Qu.:0.6338 1st Qu.:-0.11431 1st Qu.:0.6974
## Median :0.7480 Median :-0.02264 Median :0.8081
## Mean :0.7290 Mean : 0.00008 Mean :0.7536
## 3rd Qu.:0.8436 3rd Qu.: 0.09465 3rd Qu.:0.8801
## Max. :0.9852 Max. : 0.67777 Max. :0.9833
## NA's :29 NA's :80 NA's :90
## Positive affect Negative affect Confidence in national government
## Min. :0.3625 Min. :0.08343 Min. :0.06877
## 1st Qu.:0.6215 1st Qu.:0.20412 1st Qu.:0.33473
## Median :0.7174 Median :0.25180 Median :0.46314
## Mean :0.7090 Mean :0.26317 Mean :0.48021
## 3rd Qu.:0.8009 3rd Qu.:0.31151 3rd Qu.:0.61072
## Max. :0.9436 Max. :0.70459 Max. :0.99360
## NA's :18 NA's :12 NA's :161
## Democratic Quality Delivery Quality
## Min. :-2.4482 Min. :-2.14497
## 1st Qu.:-0.7720 1st Qu.:-0.71746
## Median :-0.2259 Median :-0.21014
## Mean :-0.1266 Mean : 0.00495
## 3rd Qu.: 0.6659 3rd Qu.: 0.71800
## Max. : 1.5401 Max. : 2.18472
## NA's :171 NA's :171
## Standard deviation of ladder by country-year
## Min. :0.863
## 1st Qu.:1.738
## Median :1.960
## Mean :2.004
## 3rd Qu.:2.216
## Max. :3.528
##
## Standard deviation/Mean of ladder by country-year
## Min. :0.1339
## 1st Qu.:0.3097
## Median :0.3698
## Mean :0.3873
## 3rd Qu.:0.4518
## Max. :1.0228
##
## GINI index (World Bank estimate)
## Min. :0.2410
## 1st Qu.:0.3070
## Median :0.3490
## Mean :0.3728
## 3rd Qu.:0.4335
## Max. :0.6480
## NA's :979
## GINI index (World Bank estimate), average 2000-15
## Min. :0.2288
## 1st Qu.:0.3216
## Median :0.3710
## Mean :0.3870
## 3rd Qu.:0.4331
## Max. :0.6260
## NA's :176
## gini of household income reported in Gallup, by wp5-year
## Min. :0.2235
## 1st Qu.:0.3685
## Median :0.4254
## Mean :0.4452
## 3rd Qu.:0.5086
## Max. :0.9614
## NA's :357
## code
## Length:1562
## Class :character
## Mode :character
##
##
##
##
Non essendoci valori anomali possiamo analizzare un aspetto molto interessante: guardando la distribuzione empirica di densità, c’è una normalizzazione di tale curva. Questo fattore ci consente di dire che la felicità inizialmente si distribuiva in maniera impari tra gli stati e successivamente tutti i paesi si sono “conformati” alla media.
## Grafico densità empirica della scala di felicità
a<-ggplot(data = happiness, mapping = aes(x = `Life Ladder`, group = year, frame = year, col = as.factor(year)))+
geom_density()+
theme_minimal()+
labs(title = "Densità empirica felicità (Life Ladder)", y = "Densità empirica", x="Felicità (Life Ladder)")
ggplotly(a, width = 900, height = 500)%>%animation_opts(frame = 2000, easing = "sin", mode = "afterall")%>%layout(showlegend = F)